Carlos Garnacho [Fri, 6 Oct 2017 16:12:03 +0000 (18:12 +0200)]
gtktreeview: Transform cell area to widget coordinates
GtkCellArea uses event coordinates (thus in treeview relative
coordinates), but calculations used to happen in bin window coords.
We can just offset the cell area by the bin window, fixes cell
renderer activation and edition.
Carlos Garnacho [Fri, 6 Oct 2017 16:06:56 +0000 (18:06 +0200)]
treeviewcolumn: Don't swallow motion/crossing events
If the column is not clickable, it may make some sense to stop
event propagation here for button events. However motion events
should be left alone.
Fixes treeview column resize pointer cursors, since that's
implemented up the bubbling phase in the treeview.
Carlos Garnacho [Fri, 6 Oct 2017 14:50:29 +0000 (16:50 +0200)]
treeview: Transform motion event coords to "bin window" coords
The operations rely there on bin window relative coordinates, but we
are receiving GtkTreeView relative coordinates there. Fixes clicking
on treeview expanders, which was offset by visible headers.
Timm Bäder [Fri, 6 Oct 2017 15:35:28 +0000 (17:35 +0200)]
modelbutton: set_relative_to(NULL) the popover in dispose
We do set_relative_to(menu_button) when creating it so we should do this
here (or nothing).
Timm Bäder [Fri, 6 Oct 2017 15:23:34 +0000 (17:23 +0200)]
treeviewcolumn: Don't leak button
We g_object_ref_sink the button in _create_button, so we need to unref
it ourselves.
Timm Bäder [Fri, 6 Oct 2017 15:14:31 +0000 (17:14 +0200)]
filechooserbutton: Don't leak priv->model
Timm Bäder [Fri, 6 Oct 2017 14:30:31 +0000 (16:30 +0200)]
applicationwindw: Don't leak show-help-overlay action
Timm Bäder [Fri, 6 Oct 2017 14:30:20 +0000 (16:30 +0200)]
widget-factory: Don't leak GPropertyAction instances
Benjamin Otte [Fri, 6 Oct 2017 14:01:19 +0000 (16:01 +0200)]
build: Don't turn off critical warnings
-Wint-conversion is important because it checks casts from ints to
pointers.
-Wdiscarded-qualifiers is important to catch cases where we don't
strings when we should.
Benjamin Otte [Sat, 30 Sep 2017 18:56:34 +0000 (20:56 +0200)]
gtk-demo: Remove old build file
The includes are now generated with a Python script, so remvoe the old
perl script.
Benjamin Otte [Sat, 30 Sep 2017 18:44:33 +0000 (20:44 +0200)]
build: Remove old Makefile.inc files
They seem to have been forgotten in the meson transition
Piotr Drąg [Fri, 6 Oct 2017 13:55:55 +0000 (15:55 +0200)]
Update Polish translation
Matthias Clasen [Thu, 5 Oct 2017 17:30:55 +0000 (13:30 -0400)]
Some updates
Timm Bäder [Fri, 6 Oct 2017 11:51:17 +0000 (13:51 +0200)]
Widget: make sure windowed widgets have a 1×1 min size
Timm Bäder [Fri, 6 Oct 2017 09:16:35 +0000 (11:16 +0200)]
widget: Allow 0×0 allocations
Don't MAX the allocations with 1 anymore.
Timm Bäder [Fri, 6 Oct 2017 09:15:38 +0000 (11:15 +0200)]
searchbar: Remove superfluous padding
So it's not 6px high when the child revealer is concealed.
Timm Bäder [Fri, 6 Oct 2017 12:24:52 +0000 (14:24 +0200)]
box: Drop priv pointer
Timm Bäder [Fri, 6 Oct 2017 08:40:23 +0000 (10:40 +0200)]
image: Remove mention on gdk-pixbuf-csource
gdk-pixbuf-csource as well as gdk_pixbuf_new_from_inline are deprecated.
Mention GResource instead.
Daniel Boles [Fri, 6 Oct 2017 01:32:37 +0000 (02:32 +0100)]
HC: Add border/hilight when hovering flat buttons
The border and icon highlight are useful feedback that was defeated by
CSS precedence. It worked for .titlebuttons due to their implementation,
but the same was not true for custom .flat buttons. This makes it so.
https://bugzilla.gnome.org/show_bug.cgi?id=788580
Daniel Boles [Fri, 6 Oct 2017 01:15:59 +0000 (02:15 +0100)]
HC: Flat titlebuttons became non-flat in backdrop
When the window was backdropped, they suddenly regained their border.
This was clearly not intentional or of any practical use to anyone.
Shuffle around some selectors so that the backdrop ones do not override
the flat ones and make the borders magically reappear when backdropped.
Note that, whereas standard titlebuttons get the border on :hover, other
.flat buttons in the headerbar do not. That should probably be fixed too
https://bugzilla.gnome.org/show_bug.cgi?id=788580
Daniel Boles [Thu, 5 Oct 2017 23:36:01 +0000 (00:36 +0100)]
HighContrastInverse: Make window borders visible
They were hard-coded to a transparent black, but that is our bg colour
in HC Inverse, so windows stacked on top of each other or a dark
background blended together into a mush.
Fix this by making the $_wm_border* colours relative to the fg colour,
so that HighContrastInverse gets borders that are transparentised white.
https://bugzilla.gnome.org/show_bug.cgi?id=788575
Daniel Boles [Thu, 5 Oct 2017 23:20:25 +0000 (00:20 +0100)]
HC: Fix MessageDialog’s rounded bottom borders
A missing decoration selector meant that we got a solid black background
behind the rounded corners of the dialog.
Copy the equivalent code from Adwaita, including nicely rounding the
focus outline too (& sorry, but this needs more newlines to be readable)
Daniel Boles [Mon, 11 Sep 2017 20:51:57 +0000 (21:51 +0100)]
HighContrast: Fix titlebar containing >1 headerbar
by migrating the relevant code from Adwaita, to dodge unwanted doubling
up of the bottom border and such.
https://bugzilla.gnome.org/show_bug.cgi?id=769877
Marco Trevisan (Treviño) [Fri, 22 Sep 2017 14:52:23 +0000 (22:52 +0800)]
HighContrast: set min-height for headerbars
https://bugzilla.gnome.org/show_bug.cgi?id=784562
Daniel Boles [Thu, 5 Oct 2017 18:09:19 +0000 (19:09 +0100)]
HC: Copy working tooltip code from Adwaita & tweak
There were various problems, like only selecting on .tooltip and not the
widget node tooltip, not being specific enough for tooltip.csd, etc. So,
specific theming was absent, and default popup window styles got applied
This commit copies in the better working tooltip CSS from Adwaita, but
applies a couple of changes to make it work better in the HC themes:
• Reduce the transparency of the tooltip, so we achieve higher contrast
• Drop the black text-shadow, as it is not useful on this more black bg
Note: we may then need to re-add some of this to the .tooltip class. But
it is unclear what needs done there. While Adwaita is not doing it, we
are better not to confuse by keeping it in HC only; we should try to be
as close as possible, to make it easier for HC to keep up with Adwaita.
https://bugzilla.gnome.org/show_bug.cgi?id=769879
Daniel Boles [Thu, 5 Oct 2017 09:23:59 +0000 (10:23 +0100)]
HC: Give tooltips a border for contrast on Inverse
https://bugzilla.gnome.org/show_bug.cgi?id=769879
Daniel Boles [Thu, 5 Oct 2017 09:07:17 +0000 (10:07 +0100)]
HighContrast: Actually style tooltips...
We need to select on the widget itself too, not just other things with
the .tooltip class.
https://bugzilla.gnome.org/show_bug.cgi?id=769879
Xavi Ivars [Thu, 5 Oct 2017 16:05:24 +0000 (18:05 +0200)]
[l10n] Updated Catalan (Valencian) translation
Timm Bäder [Thu, 5 Oct 2017 08:16:18 +0000 (10:16 +0200)]
switch: Fix int/double comparison
We get a double coordinate.
Timm Bäder [Thu, 5 Oct 2017 08:13:35 +0000 (10:13 +0200)]
scrolledwindow: Make sure gtk_get_current_event_state returned a state
Technically correct and pleases Coverity.
Timm Bäder [Tue, 3 Oct 2017 15:59:47 +0000 (17:59 +0200)]
appchooserdialog: Remove unused macro
Timm Bäder [Tue, 3 Oct 2017 08:55:19 +0000 (10:55 +0200)]
combobox: Remove unneeded queue_resize call
The remove/add/set_parent/unparent calls in there already do the
necessary work.
Daniel Boles [Thu, 5 Oct 2017 00:39:39 +0000 (01:39 +0100)]
HighContrast: Correctly select window decoration
We need
.window-classes decoration
but within the decoration parent selector, we were doing
&.window-classes, which gave us
decoration.window classes
We need to fix this by selecting on .window-classes &
https://bugzilla.gnome.org/show_bug.cgi?id=788496
Matthias Clasen [Thu, 5 Oct 2017 00:03:19 +0000 (20:03 -0400)]
wayland: fix a typo
This was noticed in the gtk3 backport of these changes.
Daniel Boles [Wed, 4 Oct 2017 21:58:48 +0000 (22:58 +0100)]
updateiconcache: Avoid confusing loop construct
n_attach_points is the result of g_strv_length(): the index at which the
string vector ends in NULL. So by definition, when i == n_attach_points,
string[i] == NULL, and there is no need to check for the latter. The
fact that we did appears to confuse static analysers, as the dereference
and index check were inverted from what would normally be safe. We could
reverse them, but we may as well just remove the unnecessary NULL check.
https://bugzilla.gnome.org/show_bug.cgi?id=788458
Colomban Wendling [Thu, 16 Feb 2017 16:36:17 +0000 (17:36 +0100)]
Enter submenus when activating their parent item
This gives consistent behavior with e.g. Qt, Mozilla's suites and
LibreOffice (with non-truly native backends like "gen" and "gtk",
but unlike "gtk2" and "gtk3" ones that probably use true GTK menus).
This behavior is expected by at least some accessibility users, and
it seems good to behave like other common applications and toolkits
in this area. There should be no issue in doing so either for current
users, as it only enters the submenu instead of not doing anything.
https://bugzilla.gnome.org/show_bug.cgi?id=778811
Georges Basile Stavracas Neto [Wed, 4 Oct 2017 21:25:31 +0000 (18:25 -0300)]
-wayland: Safeguard against NULL gtk_surface1
There is no guarantee that the gtk_surface won't be NULL,
and Wayland API does not safeguard against NULL, so we have
to do that ourselves here.
We were also mistakenly cheking for the surface version off
by one, fix that too by checking if the surface version is
equal or greater.
Daniel Boles [Wed, 4 Oct 2017 11:02:55 +0000 (12:02 +0100)]
TreeMenu: Remove accidentally duplicated doc lines
Not that it actually matters, as this is not public anymore, but this
was done accidentally. Also, sync a property description to ComboBox.
Daniel Boles [Wed, 4 Oct 2017 09:45:49 +0000 (10:45 +0100)]
testcombo: Test grid :row- and :column-span-column
Ditch two items that were white and so weren’t visible on our standard
theme anyway, and use the new space to test extra grid-mode properties.
Note that if we do this then, as before, we set the ListStore on the
ComboBox before appending to it, that produced runtime warnings like:
Gtk-CRITICAL **: gtk_menu_attach: assertion 'left_attach < right_attach' failed
I didn’t look into that yet, but it may indicate that attaching items
vs. recognising their spans don’t occur in the correct order. For the
purposes of testing this, I just create the CB after filling its model.
Daniel Boles [Wed, 4 Oct 2017 09:20:03 +0000 (10:20 +0100)]
ComboBox|TreeMenu: Slightly clarify wrap-width doc
Daniel Boles [Wed, 4 Oct 2017 09:14:42 +0000 (10:14 +0100)]
ComboBox|TreeMenu: Clarify :row|column-span-column
ComboBox and TreeMenu warned in the doc for :row-span-column that the
value must not exceed :wrap-width, but :wrap-width does not interact
with the number of rows; it’s the :column-span-column that’s relevant.
Also: Warn that spans must be > 0 for rows too, and that column spans <=
:wrap-width are also not useful for items at menu column positions > 0.
Finally, refer to items having spans, not values, as we were already
talking about values in the model (and rows in the menu).
Felipe Borges [Wed, 27 Sep 2017 09:53:50 +0000 (11:53 +0200)]
build: Bump minimum GLib version to 2.53.7
Otherwise it fails to build with:
GLib-Genmarshal-WARNING **: failed to open "--pragma-once":
No such file or directory
https://bugzilla.gnome.org/show_bug.cgi?id=788230
Matthias Clasen [Wed, 4 Oct 2017 01:06:50 +0000 (21:06 -0400)]
inspector: Add gsk and vulkan information
Show the used gsk renderer, as well as some information
about Vulkan, in the General tab.
Daniel Boles [Mon, 2 Oct 2017 19:22:41 +0000 (20:22 +0100)]
widget-factory: Demo different Frame border-styles
This shows not all, but the interesting/less predictable styles, and
the ones that correspond to the :shadow-types that were here before.
Daniel Boles [Mon, 2 Oct 2017 07:10:32 +0000 (08:10 +0100)]
Revert "widget-factory: Usefully demo Frame shadow types"
This reverts commit
6ee2bf628614e9c14b061bd48c2efd2c9515ab19.
There is a way to get different kinds of borders: it's CSS. It's better
to keep the 4 Frames and demo the different styles we can do using CSS.
Daniel Boles [Mon, 2 Oct 2017 18:27:16 +0000 (19:27 +0100)]
Frame: Enhance CSS docs
Indicate how the old shadow types are replaced by CSS border-style et
al., and quote the names of nodes and classes for easier readability.
Carlos Garnacho [Mon, 2 Oct 2017 16:11:53 +0000 (18:11 +0200)]
imcontext: Fix typo on ctrl+shift+u hex sequences handling
This condition was meant to exit when the event has no keyval (eg. fed a
non-keyboard event somehow).
Timm Bäder [Mon, 2 Oct 2017 13:25:44 +0000 (15:25 +0200)]
snapshot: Fix mixup when creating crossfade nodes
We need to set the progress on the end node.
Timm Bäder [Sun, 1 Oct 2017 12:28:11 +0000 (14:28 +0200)]
snapshot: Use one GPtrArray for all nodes
Instead of creating one GPtrArray per GtkSnapshotState and saving nodes
in there, create one GPtrArray per snapshot and assign a
start_node_index to every GtkSnapshotState as well as a n_nodes variable
so every state knows which nodes belong to it.
Timm Bäder [Sun, 1 Oct 2017 11:49:01 +0000 (13:49 +0200)]
snapshot: Use one large GArray for all states
Allocating all of them separately shows up in profiles.
Timm Bäder [Sun, 1 Oct 2017 07:48:31 +0000 (09:48 +0200)]
gtkroundedbox: Remove some unneeded conditionals
Always pass exactly 4 GtkCssValue* parameters to apply_border_radius
and make sure they are properly const.
Matthias Clasen [Mon, 2 Oct 2017 04:18:08 +0000 (00:18 -0400)]
Start reftests for gsk
Add a framework similar to what we have for gtk reftests
that lets us drop in a function to generate render nodes,
and compare reference output.
Matthias Clasen [Mon, 2 Oct 2017 02:55:32 +0000 (22:55 -0400)]
Create tests for gsk box shadows
Matthias Clasen [Mon, 2 Oct 2017 02:09:43 +0000 (22:09 -0400)]
Create tests for GskTextNode
Matthias Clasen [Sun, 1 Oct 2017 23:17:39 +0000 (19:17 -0400)]
Clip intermediate textures
In some cases, we were creating gigantic intermediate textures
only to clip out a small section afterwards (e.g. in the listbox
example in gtk4-demo). This is wasteful if we apply effects on
the texture, such as blur or color-matrix. So, clip the dimensions
of the intermediate texture with the current clip. To make this
feasible, we move the texture coordinate computation out of the
pipeline setup functions into the node_as_texture function where
this clipping happens.
One extra complication we encounter is that the node might get
clipped away completely. Since Vulkan does not allow to create
empty images, we bail out in this case and not draw anything.
With these changes, the listbox example in gtk4-demo goes from
32M pixels of intermediate texture to 320000.
Timm Bäder [Sat, 30 Sep 2017 18:49:26 +0000 (20:49 +0200)]
stylecontext: Drop priv pointer
Timm Bäder [Sat, 30 Sep 2017 18:06:30 +0000 (20:06 +0200)]
spinner: Remove priv pointer
Timm Bäder [Sat, 30 Sep 2017 17:34:10 +0000 (19:34 +0200)]
switch: Remove priv pointer
Timm Bäder [Sat, 30 Sep 2017 16:48:11 +0000 (18:48 +0200)]
label: Remove priv pointer
Timm Bäder [Sat, 30 Sep 2017 15:59:44 +0000 (17:59 +0200)]
image: Remove some unneeded includes
Timm Bäder [Sat, 30 Sep 2017 15:58:29 +0000 (17:58 +0200)]
image: Remove priv pointer
Look at all the free ram!
Timm Bäder [Sat, 30 Sep 2017 15:26:42 +0000 (17:26 +0200)]
iconhelper: Don't inherit from GObject
It's not a GtkCssGadget anymore, it doesn't have any properties or
signals either and it's not public. Further, its lifetime is very clear
the way it's being used inside GTK+.
Timm Bäder [Sat, 30 Sep 2017 11:11:51 +0000 (13:11 +0200)]
cssshadowsvalue: Don't heap-allocate shadows
This showed up in profiles in certain scenarios, so export a
_get_n_shadows getter instead and let callers provide a sufficiently
large allocated array of GskShadows, which we can use with
g_alloc/g_newa.
Timm Bäder [Sat, 30 Sep 2017 10:57:21 +0000 (12:57 +0200)]
switch: Remove some unneeded includes
Matthias Clasen [Sat, 30 Sep 2017 21:57:36 +0000 (17:57 -0400)]
Add a forgotten rename
When I renamed blend to texture, I overlooked that the color
text pipeline also uses this shader. Fix it.
Matthias Clasen [Sat, 30 Sep 2017 15:04:16 +0000 (11:04 -0400)]
Reshuffle things a little bit
Instead of having a function with lots of arguments in
GskVulkanRender that we call from GskVulkanRenderPass which
then just calls back into GskVulkanRenderPass, just create
the new render pass object locally, and an api to add it
to the list that GskVulkanRender keeps. This makes it
a lot easier to preserve all the relevant parameters from
the parent render pass.
Matthias Clasen [Sat, 30 Sep 2017 14:42:32 +0000 (10:42 -0400)]
Small simplification
Just keep the viewport as a graphene_rect_t, we don't need
to use the Vulkan type here.
Matthias Clasen [Sat, 30 Sep 2017 14:39:04 +0000 (10:39 -0400)]
vulkan: Add a counter for intermediate textures
Count how many pixels of intermediate textures we create.
If we can count it, we can optimize it.
Matthias Clasen [Sat, 30 Sep 2017 14:37:55 +0000 (10:37 -0400)]
Cosmetics
Factor out a helper function.
Matthias Clasen [Sat, 30 Sep 2017 03:29:33 +0000 (23:29 -0400)]
Fix a doc comment
It was missing a return.
Benjamin Otte [Sat, 30 Sep 2017 18:23:11 +0000 (20:23 +0200)]
inspector: GSK_IS_RENDER_NODE() does NULL-check
That means we don't need an extra one just so gcc can complain.
Matthias Clasen [Sat, 30 Sep 2017 02:41:00 +0000 (22:41 -0400)]
Support repeat nodes in vulkan
We can use the texture pipeline for this, with a repeating sampler.
Matthias Clasen [Sat, 30 Sep 2017 03:01:34 +0000 (23:01 -0400)]
vulkan: Add a repeating sampler
None of the render ops use it, yet.
Matthias Clasen [Sat, 30 Sep 2017 02:38:59 +0000 (22:38 -0400)]
vulkan: Move sampler creation down
This is in preparation of allowing multiple samplers.
Matthias Clasen [Sat, 30 Sep 2017 02:24:53 +0000 (22:24 -0400)]
vulkan: Rename blend pipeline to texture
This is what it does, and the name blend is easily
confused with blend-mode.
Matthias Clasen [Sat, 30 Sep 2017 02:07:30 +0000 (22:07 -0400)]
vulkan: Allow to control scaling in the blend pipeline
Pass in a second rect that defines the size of the texture.
Update the sole caller to pass in the same rect, for unchanged
behavior.
Matthias Clasen [Fri, 29 Sep 2017 19:45:37 +0000 (15:45 -0400)]
vulkan: Fix setup for dependent render passes
We were not correctly preserving the modelview transform.
Daniel Boles [Fri, 29 Sep 2017 17:13:44 +0000 (18:13 +0100)]
docs: css-properties: Fix wrongly repeated colour
Timm Bäder [Fri, 29 Sep 2017 10:16:06 +0000 (12:16 +0200)]
testsuite: Add test case for previous commit
This previously led to a loop in the child widgets.
Timm Bäder [Fri, 29 Sep 2017 10:15:23 +0000 (12:15 +0200)]
widget: Fix inserting child widgets at the beginning
We have to care about the child widget's current prev/next sibling as
well.
Timm Bäder [Fri, 29 Sep 2017 10:10:42 +0000 (12:10 +0200)]
build: Add widgetorder unit test to build system
Timm Bäder [Fri, 29 Sep 2017 08:50:33 +0000 (10:50 +0200)]
box: Remove return value from box_pack
Unused.
Timm Bäder [Fri, 29 Sep 2017 08:49:41 +0000 (10:49 +0200)]
box: Remove size_allocate_no_center
GtkBox never has a center widget these days.
Timm Bäder [Fri, 29 Sep 2017 07:23:56 +0000 (09:23 +0200)]
adwaita: Remove outlines from focused entries for now
Matthias Clasen [Fri, 29 Sep 2017 01:41:24 +0000 (21:41 -0400)]
Recorder: Add details for inset and outset shadow nodes
Matthias Clasen [Fri, 29 Sep 2017 01:06:52 +0000 (21:06 -0400)]
gsk: Fix a typo
Repeating linear gradient nodes share most of the implementation
with linear gradient nodes, but they shouldn't share the class name.
Matthias Clasen [Fri, 29 Sep 2017 01:06:35 +0000 (21:06 -0400)]
Recorder: Show details about linear gradient nodes
Matthias Clasen [Thu, 28 Sep 2017 23:48:42 +0000 (19:48 -0400)]
Recorder: Show details of blur nodes
Matthias Clasen [Thu, 28 Sep 2017 23:40:03 +0000 (19:40 -0400)]
recorder: Show details for blend nodes
Matthias Clasen [Thu, 28 Sep 2017 23:39:16 +0000 (19:39 -0400)]
gsk: remove gsk_blend_node_get_blend_mode from public api
We don't have any other such getters in the public api at
this point, so leave this one out as well.
Matthias Clasen [Thu, 28 Sep 2017 23:20:25 +0000 (19:20 -0400)]
Recorder: Show details of crossfade nodes
Matthias Clasen [Thu, 28 Sep 2017 23:14:32 +0000 (19:14 -0400)]
recorder: Show details for opacity nodes
Matthias Clasen [Thu, 28 Sep 2017 22:58:18 +0000 (18:58 -0400)]
Recorder: Show details of border nodes
Matthias Clasen [Thu, 28 Sep 2017 22:41:39 +0000 (18:41 -0400)]
recorder: Put text color in the right row
It ended up in the wrong place by accident.
Matthias Clasen [Thu, 28 Sep 2017 22:37:47 +0000 (18:37 -0400)]
Recorder: Show colors visually for text too
Just because we can do it.
Matthias Clasen [Thu, 28 Sep 2017 22:37:00 +0000 (18:37 -0400)]
Reshuffle the recorder ui a bit
Make it possible to see the properties and the rendering at
the same time, it makes navigating easier.
Matthias Clasen [Thu, 28 Sep 2017 22:17:38 +0000 (18:17 -0400)]
recorder: Show surfaces and textures
This makes the properties list much more interesting.
Matthias Clasen [Thu, 28 Sep 2017 21:16:41 +0000 (17:16 -0400)]
recorder: Show text node properties
Matthias Clasen [Thu, 28 Sep 2017 19:08:08 +0000 (15:08 -0400)]
recorder: show color information for color nodes
A first step towards showing more information for render nodes.
Timm Bäder [Thu, 28 Sep 2017 18:00:24 +0000 (20:00 +0200)]
Plug some memory leaks
Make sure the scroll controllers in GtkComboBox and GtkScrolledWindow
get destroyed.